# 指定使用的 cmake 的最低版本
cmake_minimum_required(VERSION 3.20)
# 项目名称
# 定义工程名称，并可指定工程的版本、工程描述、web主页地址、支持的语言（默认情况支持所有语言），如果不需要这些都是可以忽略的，只需要指定出工程名字即可。
project(CALC)
# 设置变量
# 定义一个变量，将文件名对应的字符串存储起来，在cmake里定义变量需要使用set
set(SRC_LIST add.c sub.c div.c mult.c main.c)

# 指定使用的C++标准
set(CMAKE_CXX_STANDARD 17)
#增加-std=c++11
# set(CMAKE_CXX_STANDARD 11)
#增加-std=c++14
# set(CMAKE_CXX_STANDARD 14)
#增加-std=c++17
# set(CMAKE_CXX_STANDARD 17)
#[[
    在执行 cmake 命令的时候指定出这个宏的值
    #增加-std=c++11
    cmake CMakeLists.txt文件路径 -DCMAKE_CXX_STANDARD=11
    #增加-std=c++14
    cmake CMakeLists.txt文件路径 -DCMAKE_CXX_STANDARD=14
    #增加-std=c++17
    cmake CMakeLists.txt文件路径 -DCMAKE_CXX_STANDARD=17
]]

# 在CMake中指定可执行程序输出的路径，也对应一个宏，叫做EXECUTABLE_OUTPUT_PATH
#[[
    由于可执行程序是基于 cmake 命令生成的 makefile 文件然后再执行 make 命令得到的，
    所以如果此处指定可执行程序生成路径的时候使用的是相对路径 ./xxx/xxx，
    那么这个路径中的 ./ 对应的就是 makefile 文件所在的那个目录
]]
set(EXECUTABLE_OUTPUT_PATH ./bin)


# 定义工程会生成一个可执行程序
# 将多个文件生成一个可执行文件
# add_executable(可执行程序名 源文件名称)
#[[
    这里的可执行程序名和project中的项目名没有任何关系
    源文件名可以是一个也可以是多个，如有多个可用空格或;间隔
]]
# add_executable(app add.c sub.c div.c mult.c main.c)
# 使用变量
add_executable(app ${SRC_LIST})